package cn.fz.exception;

import cn.fz.entity.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

// @ControllerAdvice
// @ResponseBody
// 表示当前类为全局异常处理器
@RestControllerAdvice   //作用：用来捕获控制器controller层抛出的所有异常
@Slf4j
public class GlobalExceptionHandler {
    //指定可以捕获哪种类型的异常进行处理
    @ExceptionHandler     //指定处理何种异常
    public Result doException(Exception ex){
        //方法形参中指定能够处理的异常类型
        log.error(ex.getMessage());
        //捕获到异常之后，响应一个标准的Result
        return Result.error("出错了，请联系管理员！");
    }

    @ExceptionHandler
    public Result handleBusinessException(BusinessException e){
        log.error("程序运行出错啦 .... ", e);
        return Result.error(e.getMessage());
    }
}
